package cn.edu.wynu.arraylist;

import java.util.ArrayList;

// ArrayList是一个集合，集合是一种容器，用来装数据的，类似数组。
// 数字定义完成并启动后，长度就固定了；而集合的大小可变，开发中用得更多。
public class ArrayListDemo01 {
    public static void main(String[] args) {
        // 掌握如何创建ArrayList集合的对象，并熟悉ArrayList提供的常用方法。

        // ArrayList<E>，是用的最多、最常见的一种集合。
        //构造器                                  // 说明
        //public ArrayList()                     //创建一个空的集合对象

        //常用方法名                              // 说明
        //public boolean add(E e)                //将指定的元素添加到此集合的末尾
        //public void add(int index,E element)   //在此集合中的指定位置插入指定的元素
        //public E get(int index)                //返回指定索引处的元素
        //public int size()                      //返回集合中的元素的个数
        //public E remove(int index)             //删除指定索引处的元素，返回被删除的元素
        //public boolean remove(Object o)        //删除指定的元素，返回删除是否成功
        //public E set(int index,E element)      //修改指定索引处的元素，返回被修改的元素

        // 1、创建ArrayList集合的对象
        ArrayList<String> list = new ArrayList<>();
        list.add("dys");
        list.add("666");
        list.add("学习Java");
        list.add("很高兴认识你");
        list.add("高兴");
        list.add("Java");
        list.add("很高兴认识你");
        System.out.println(list);

        // 2、往集合中的某个索引位置添加一个数据
        list.add(2, "Java");
        System.out.println(list);

        // 3、根据索引获取集合中某个索引位置处的值
        String rs = list.get(2);
        System.out.println(rs);

        // 4、获取集合的大小（返回集合中存储的元素个数）
        System.out.println(list.size());

        // 5、根据索引删除集合中的某个元素值，会返回被删除的元素值
        System.out.println(list.remove(2));
        System.out.println(list);

        // 6、直接删除某个元素值，会返回删除是否成功ture/false
        System.out.println(list.remove("学习Java"));
        System.out.println(list);

        // 默认删除的是第一次出现的元素值
        System.out.println(list.remove("很高兴认识你"));
        System.out.println(list);

        // 7、修改集合中某个索引位置处的元素值，会返回被修改的元素值
        System.out.println(list.set(3, "good"));
        System.out.println(list);
    }
}
